﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace pytator {
	public partial class PytatorForm : Form {
		private Pytator p;
		private QuestionsControl questionsControl;
		public PytatorForm() {
			InitializeComponent();
		}
		void modeSelectionControl1_okClick() { //po kliknięciu ok na kontrolce wyboru trybu i testu:
			string mode;
			if(modeSelectionControl1.testRadioChecked) { //wybieramy tryb
				mode = Pytator.TestMode;
			} else {
				mode = Pytator.NaukaMode;
			}
			try { 
				this.questionsControl = new QuestionsControl(); //tworzymy kontrolkę pytania
				this.questionsControl.Dock = DockStyle.Fill;
				this.p = new Pytator(this.modeSelectionControl1.testPath, this.questionsControl, mode); //tworzymy nowy Pytator
				this.p.summaryRequest += this.pytator_summaryRequest; //dodajemy obsługę żądania kontrolki podsumowującej
				this.p.startRequest += this.pytator_startRequest; //dodajemy obsługę wyświetlenia kontrolki wyboru testu
				this.Controls.Clear(); //czyścimy formę
				this.Controls.Add(this.questionsControl); //dodajemy do formy kontrolkę pytania
			} catch(PytatorException e) {
				MessageBox.Show(e.Message);
			}
		}
		void pytator_summaryRequest() { //jeżeli jest zapotrzebowanie na podsumowanie, to tworzymy tą kontrolkę
			this.Controls.Remove(this.questionsControl);
			this.p.SummaryControl = new SummaryControl();
			this.Controls.Add(this.p.SummaryControl);
		}
		void pytator_startRequest() { //jeżeli jest zapotrzebowanie na ponowny start, to startujemy
			this.Controls.Clear();
			this.modeSelectionControl1 = new ModeSelectionControl();
			this.modeSelectionControl1.Dock = DockStyle.Fill;
			this.modeSelectionControl1.okClick += this.modeSelectionControl1_okClick;
			this.Controls.Add(this.modeSelectionControl1);
		}
	}
}
